
//useEffect第二个参数的使用总结
import React,{useEffect, useState} from 'react'

export default function App() {
 
  const [count,setCount] = useState(0)
  const [msg, setMsg] = useState('')

  // 1.[]代表挂载时,只执行一次
  //含义:代表挂载时,等同于componentDidMount,只执行一次
  //场景:发请求,监听事件,开启定时器
  // useEffect(()=>{
  //   console.log('我被执行了  ----->  ');
  // },[])


  //2.[依赖项]  代表挂载时和更新时二合一
  //含义:只会监听挂载时和状态改变是,
  //注意:只会监听依赖项的改变,非依赖项不会触发
  //相当于componentDidMount和componentDidUpdate二合一
  //场景:缓存
  useEffect(()=>{
    console.log('我被执行了  ----->  ');
  },[count]) //[依赖项] 类似vue中的侦听器,开了immediately立即执行

  //3.不传,一般不这么写
  //含义:相当于componentDidMount和componentDidUpdate二合一
  //不同:监听全部的依赖项变化
  useEffect(()=>{
    console.log('我被执行了  ----->  ');
  })
  return (
    <div >
     
    count --- {count}
      
    <button onClick={()=>setCount(count+1)}>点击改变count</button>
    </div>
  )
}


